// 导入必要的模块和中间件
import express from "express";
import cors from "cors";
import bodyParser from "body-parser";
import path from "path";
import router from "./src/router";
import { jwtError, secretKey } from "./src/utils/jwt";
import { expressjwt } from "express-jwt";
import { initReids } from "./src/utils/redis";

// 定义静态资源路径和端口号
const basePath = path.resolve(__dirname, "./public");
const port = 7676;
// 初始化Express应用
const app = express();
app.use(express.static(basePath)) // 配置静态资源服务
    .use(bodyParser.urlencoded({ extended: false }))
    .use(bodyParser.json()) // 配置解析URLencoded和JSON格式的请求体
    .use(cors()) // 开启CORS跨域访问支持
    .use(
        expressjwt({ secret: secretKey, algorithms: ["HS256"] }).unless({
            path: [/^\/(admin)\//],
        })
    ) // 配置JWT认证，除非特定路径
    .use(router) // 使用路由处理器
    .use(jwtError); // 错误处理中间件，用于处理JWT认证错误
// 初始化Redis连接
initReids();
// 启动服务器监听指定端口
app.listen(port, () => {
    console.log(port, "启动中");
});
